import request from '@/config/axios'

// 使用高德开放平台天气API
// 文档：https://lbs.amap.com/api/webservice/guide/api/weatherinfo

// 天气查询参数
export interface WeatherQueryParams {
  city?: string; // 城市编码，如果不传则自动定位当前城市
  extensions?: 'base' | 'all'; // base:返回实况天气，all:返回预报天气
}

// 天气信息响应接口
export interface WeatherInfo {
  city: string; // 城市名称
  weather: string; // 天气状况
  temperature: string; // 温度
  windDirection: string; // 风向
  windPower: string; // 风力
  humidity: string; // 湿度
  reportTime: string; // 数据发布时间
}

// 获取天气信息
// 注意：实际项目中应该在后端实现此API，避免将API Key暴露在前端
export const getWeatherInfo = (params: WeatherQueryParams = {}) => {
  // 这里使用模拟数据，实际项目中应该调用真实API
  // return request.get<WeatherInfo>({ 
  //   url: '/api/weather/info', 
  //   params 
  // })
  
  // 模拟API响应
  return new Promise<WeatherInfo>((resolve) => {
    setTimeout(() => {
      // 模拟天气数据
      const now = new Date();
      const hours = now.getHours();
      let weather = '晴';
      let tempMin = 20;
      let tempMax = 32;
      
      // 根据时间段模拟不同天气
      if (hours < 6 || hours > 18) {
        weather = '晴';
        tempMin = 18;
        tempMax = 25;
      } else if (hours > 12 && hours < 16) {
        weather = '多云';
        tempMin = 22;
        tempMax = 34;
      }
      
      resolve({
        city: '北京市',
        weather,
        temperature: `${tempMin}℃ - ${tempMax}℃`,
        windDirection: '东南风',
        windPower: '3级',
        humidity: '40%',
        reportTime: now.toLocaleString()
      });
    }, 500);
  });
};